package de.g18.llmaa.gui.workspace.internalFrame;

import javax.swing.ImageIcon;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;

import de.g18.llmaa.gui.workspace.Workspace_Crtl;
import de.g18.llmaa.logic.properties.PropertiesAndIconLoader;

/**
 * Abstrakte ableitung eines InternalFrames, diese Ableitung ist grundlage für
 * alle im Workspace befindlichen Fenster.
 * 
 * @author Gruppe LLMAA
 * 
 */
public abstract class Abstract_InternalFrame extends JInternalFrame implements
		InternalFrameListener {

	/**
	 * Konstruktor welcher die Grundlegenden Darstellungs einstellungen setzt.
	 */
	public Abstract_InternalFrame() {
		setFrameIcon(
				PropertiesAndIconLoader.getInstance().icon_InternalFrame);
		setFocusable(true);
		setMaximizable(true);
		setClosable(true);
		setResizable(true);
		setVisible(true);
		addInternalFrameListener(this);

	}

	@Override
	public void internalFrameOpened(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void internalFrameIconified(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void internalFrameDeiconified(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void internalFrameDeactivated(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

	/**
	 * Beim schließen des Fensters wird der Workspace Controler Informiert das
	 * dieses Fenster verschwinden soll.
	 */
	@Override
	public void internalFrameClosing(InternalFrameEvent arg0) {

		Workspace_Crtl.getInstnace().removeVisibleComponent(this);

	}

	@Override
	public void internalFrameClosed(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void internalFrameActivated(InternalFrameEvent arg0) {
		// TODO Auto-generated method stub

	}

}
